package com.leador.exchange;

import com.leador.core.KernelThread;
import com.leador.module.AppInfo;
import com.leador.utils.Utils;

import java.util.Deque;
import java.util.LinkedList;

/**
 * socket 上报 或者 获取返回值
 * Created by liuha on 2016/9/15.
 */
public class SocketExchange extends BaseBaseExchange{
    @Override
    public void pull(String message) {

    }

    @Override
    public void push() {

    }
//    private  static Deque<byte[]> sendDataQueue = new LinkedList<byte[]>();
//    public   Deque tempDataQueue = new LinkedList();
//    private KernelThread kernelThread;
//    private static int e = 0;
//    private static byte c = 1;
//    private static int f = 10;
//    public SocketExchange(KernelThread kernelThread){
//        this.kernelThread = kernelThread;
//    }
//    @Override
//    public void pull(String message) {
//
//    }
//
//    @Override
//    public void push() {
//        e = 0;
//        boolean dbHasValue = kernelThread.isDbHasValue();
//        if(tempDataQueue.size() > 0) {
//            this.a(tempDataQueue);
//        } else if(!dbHasValue && kernelThread.bufferDataQueue.size() <= 0) {
//            this.a(kernelThread.realtimeDataQueue);
//        } else {
//            this.a(kernelThread.bufferDataQueue);
//            if(kernelThread.bufferDataQueue.size() <= 0) {
//                kernelThread.setDbHasValue(false);
//            }
//        }
//
////        TraceJniInterface traceJniInterface = TraceJniInterface.getInstance();
//        byte var10001 = c;
//
//        byte[] var2 = new byte[e];
//        int var3 = sendDataQueue.size();
//        int i = 0;
//        for(int j = 0; j < var3; ++j) {
//            byte[] var5 = sendDataQueue.poll();
//            if(var5 != null) {
//                for(int k = 0; k < var5.length; ++k) {
//                    var2[i + k] = var5[k];
//                }
//                i += var5.length;
//                sendDataQueue.offer(var5);
//            }
//        }
//        //绑定发送包
////        TraceJniInterface.setSocketPackData(var10001, var2);
//    }
//
//    private void a(Deque var1) {
//        int var2 = c == 1?(AppInfo.packed_data_capacity << 5) * 3: AppInfo.packed_data_capacity << 5;
//        int var3 = var1.size();
//        while(e < var2 && var3 > 0 && sendDataQueue.size() < f) {
//            byte[] var4 = (byte[])var1.poll();
//            --var3;
//            if(var4 != null) {
//                if(var2 - e < var4.length) {
//                    var1.offerFirst(var4);
//                    return;
//                }
//
//                sendDataQueue.offer(var4);
//                e += var4.length;
//            }
//        }
//    }
//
//    /**
//     * 将即将写入的数据加入到 uploadingDatas里面去。
//     * @param var0
//     */
//    public  void a(int var0) {
//        if(AppInfo.packed_data_need_response == 1) {
//            LinkedList<byte[]> var1 = new LinkedList<byte[]>();
//
//            while(sendDataQueue.size() > 0) {
//                byte[] var2 = sendDataQueue.poll();
//                var1.offer(var2);
//            }
//
//            kernelThread.uploadingDatas.put(Integer.valueOf(var0), var1);
//            kernelThread.responseUploadTimes.put(Integer.valueOf(var0), Integer.valueOf(Utils.getSystemTime()));
//        }
//
//        e = 0;
//    }
}
